* Code to reproduce “Table IV. A Spatial Durbin Model for the intensity effect of local spending on OCV in 2010”, using the integrated “Dez_and_Death_integrated_dataset.dta” – 100 km radius specification

* Merge with georeferenced dataset
keep if year ==2010
merge code using Cabezera_Coordinados

* For the spmlreg to work, the dataset has to be balanced and squared
drop if CIDE_OC_deaths_Cap_Log ==.
drop if lat_dd==.

* The following set of commands does not work if islands (i.e., those local governments who do not have a neighbour with a positive OCG homicide rate in the below applied radius) are included, which is why islands are dropped here
drop if code == 8052
drop if code == 23004
drop if code == 31050
drop if code ==3002
drop if code == 3003
drop if code ==3008
drop if code ==5010
drop if code == 28027

* Generating the binary spatial weights matrix including municipalities within a 100 km range
capture spwmatrix gecon lat_dd long_dd , wn(Binary_100km) wtype(bin) db(0 100) row mataf eignvar(eigenvalues) noisland

* Computation of the  part of the “Spatial Durbin Model for the intensity effect of local spending on OCV in 2010”, whereas the variables related to security spending per capita, the local police pear capita, spending per capita, revenues per capita and population density are multiply imputed with 50 datased (M=50) 
tabulate Estado_ID, gen(Estado)	
mi set mlong
mi register imputed Sec_Spending_Cap_2010 Loc_Police_Per_Head Spending_Cap_Real Own_Revenue_Share Population_Density  
mi register regular CIDE_OC_deaths_Cap_Log gini poverty Share_Head_of_HH_Female Household_Size Population_15_29_Males  Males_Per_100_Females Indigenous_Pop_Share Population Munic_Size_Categ Laakso_Tag_Ind Dummy_Border_PCoast Estado1-Estado30
mi impute mvn Sec_Spending_Cap_2010 Loc_Police_Per_Head Spending_Cap_Real Own_Revenue_Share Population_Density    = CIDE_OC_deaths_Cap_Log gini poverty Share_Head_of_HH_Female Household_Size Population_15_29_Males  Males_Per_100_Females Indigenous_Pop_Share Population Munic_Size_Categ Laakso_Tag_Ind Dummy_Border_PCoast Estado1-Estado30, add(50) force
mi xeq 0 1 20 50: summarize Sec_Spending_Cap_2010 Loc_Police_Per_Head Spending_Cap_Real Own_Revenue_Share Population_Density  
mi estimate, cmdok: spmlreg CIDE_OC_deaths_Cap_Log Spending_Cap_Real Own_Revenue_Share Sec_Spending_Cap_2010 Loc_Police_Per_Head gini poverty Share_Head_of_HH_Female Household_Size Population_Density  Population_15_29_Males  Males_Per_100_Females Indigenous_Pop_Share Population Munic_Size_Categ Laakso_Tag_Ind Dummy_Border_PCoast Estado1-Estado30, weights(Binary_100km) wfrom(Mata) eignvar(eigenvalues) model(durbin) robust

*Results and important additional parameters are stored in an excel file
putexcel set "resultsCS_SDM.xlsx", sheet("OLS_Bin_100km") modify
putexcel I3=(" Number of obs")
putexcel J3=( e(N_mi))
putexcel I5=("F_mi")
putexcel J5=( e(F_mi))
matrix a = r(table)'
matrix a = a[., 1..6]
putexcel A2=matrix(a)
